package com.example.j280_webproject.day039.service;

import com.example.j280_webproject.day039.jdbc.BaseJDBC;
import com.example.j280_webproject.day039.jdbc.ClassJDBC;
import com.example.j280_webproject.day039.jdbc.StudentJDBC;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * 实现了绑定学生班级信息，首先判断学生身份证号和班级名称是否输入，如果没有需要提醒；再判断学生和班级是否存在，不存在给出提示；如果以上条件
 * 均满足则完成绑定，提示绑定成功。
 */
public class BindStudentAndClassService {
    /**
     * 绑定学生班级信息
     *
     * @param card         身份证信息
     * @param className    班级名称
     * @return             返回String字符串
     */
    public String bindStudentAndClass(String card,String className){
        Connection connection = BaseJDBC.createConnection();
        StudentJDBC studentJDBC = new StudentJDBC();
        ClassJDBC classJDBC = new ClassJDBC();
        int student_id = 0;
        int class_id = 0;
        if (card==null || "".equals(card)){                                   //如果提交的学生身份证号为null或""则为true，返回提示信息
            return "对不起！请输入学生身份证号码！";
        }
        else {
            try {
                 student_id = studentJDBC.selectByCard(connection, card);     //通过身份证号查询学生是否存在，如果存在返回学生id，不存在返回-1
                if (student_id==-1){                                          //如果学生不存在student_id为-1
                    return "对不起！此学生不存在！";
                }
            } catch (SQLException throwables) {
                return "系统错误请稍后再试！";
            }
        }
        if (className==null || "".equals(className)){                         //如果提交的班级名称为null或""则为true，返回提示信息
            return "对不起！请输入班级名称！";
        }
        else {
            try {
                class_id = classJDBC.selectByClassName(connection, className);//通过班级名称查询班级是否存在，如果存在返回班级id，不存在返回-1
                if (class_id==-1){                                            //如果班级不存在class_id为-1
                    return "对不起！此班级不存在！";
                }else {
                    studentJDBC.updateById(connection,student_id,class_id);   //满足上述条件调用updateById方法，通过学生id和班级id修改学生表中的班级信息
                    connection.commit();
                    connection.close();
                    return "恭喜您学生信息更新成功！";
                }
            } catch (SQLException throwables) {
                return "系统错误请稍后再试！";
            }
        }
    }
}
